import java.util.ArrayList;
import java.util.Random;


public class BadugiBot extends BadugiGracz {

    public static final int BOT_POZIOM_LATWY = 1;
    public static final int BOT_POZIOM_HARDCORE = 2;
    Random random = new Random();
    private int botPoziom;

    /**
     * Konstruktor domyslny
     */
    public BadugiBot(String nick) {
        super(nick);
        this.botPoziom = 1;
    }

    /*
     * Konstruktor umozliwiajacy wybranie stopnia zaawansowania IQ bota
     * @param botPoziom - poziom inteligencji bota
     */
    public BadugiBot(int botPoziom) {
        super("BotJESTEM");
        this.botPoziom = botPoziom;
    }

    public ArrayList<BadugiKarta> wybierzKartyDoWymiany() {
        ArrayList<BadugiKarta> doWymiany = null;

        switch(botPoziom) {
            case BOT_POZIOM_LATWY:
                doWymiany = latwaStrategia(reka.karty);
                break;
        }
        iloscWymienionychKart = doWymiany.size();
        return doWymiany;
    }

    /*
     * Latwa strategia
     *
     * @param karty karty na reku
     * @return  karty ktore Bot jest sklonny wymienic
     */
    private ArrayList<BadugiKarta> latwaStrategia(ArrayList<BadugiKarta> karty) {
        ArrayList<BadugiKarta> doWymiany;
        do {

            doWymiany = new ArrayList<>();
            for (int i = 0; i < karty.size(); i++) {
                if (random.nextBoolean()) {
                    // losuj karte o indeksie i
                    BadugiKarta k = losujKarte();
                    doWymiany.add(k);
                }
            }
        } while (doWymiany.size() == karty.size());
        return doWymiany;
    }

    private BadugiKarta losujKarte()
    {
        return reka.karty.get(random.nextInt(reka.karty.size()));
    }




}
